The presently disclosed system and method relates generally to remote firmware installations, and more particularly to a software package header configuration to facilitate the transfer and installation of firmware files in a remote embedded device.
An embedded device is a special purpose computer system that typically performs a dedicated set of tasks. The embedded device has limited memory to reduce costs and power consumption, and improve efficiency of the embedded device. Examples of embedded devices include gateways that process communications in a communication network. When an embedded device is installed, upgraded or configured, the firmware of the embedded device is modified, often with firmware files in the form of image files. The firmware files can be collected together in a software package to be provided to the embedded device for collective installation.
The embedded device can implement a web server through which the firmware files contained in the software package can be transferred to the embedded device. Because the embedded device has limited temporary storage, and the web server receives a software package containing firmware files through serial communication, each of the firmware files in a software package is checked and committed to firmware storage upon receipt. Each firmware file in a software package is received in sequence with the serial transmission between the client and the server, for example, so that each firmware file is checked as it is received and stored in firmware memory, followed by the receipt of another firmware file into the temporary storage of the embedded device.
If there is a problem with a firmware file, such as may occur because of a hardware incompatibility, having an incorrect build date or having an improper version of the firmware file, the software package installation can fail, and the embedded device may be left in an unknown or inoperable state. For example, one or more firmware files may be received, validated and committed to memory, after which an invalid firmware file is received, and the software package installation process is terminated. The already installed firmware files remain in the memory of the embedded device, which memory may be permanent storage where the installed firmware files overwrite previous data. The already installed firmware files may not be compatible with the set of firmware files remaining in firmware after the termination of the installation process. The embedded device in such a state may operate improperly and be in need of repair and may need to be taken off line to execute repairs. Software package installations or service for the embedded device are complicated by the communication protocol between the client and server, in which the client is unable to modify files existing on a server for reasons such as security precautions. It would be desirable to obtain a mechanism for providing a software package installation to an embedded device in a client-server environment without increasing the resources used by the embedded device.